#ifndef AUTOMATICSTRUCT_H
#define AUTOMATICSTRUCT_H

#include <QObject>
#include "ActionStruct.h"
#include "EquipmentConditionStruct.h"
#include "TimeConditionStruct.h"
class AutomaticStruct
{
public:
    AutomaticStruct();

    enum ConditionSatisfyType
    {
        AnyOneSatisfy = 0,
        AllSatisfy = 1
    };

    bool isExecute() const;
    void setIsExecute(bool isExecute);


    quint8 conditionSatisfyType() const;
    void setConditionSatisfyType(const quint8 &conditionSatisfyType);

    QList<ActionStruct> actionList() const;
    void setActionList(const QList<ActionStruct> &actionList);

    QList<EquipmentConditionStruct> equipmentConditionList() const;
    void setEquipmentConditionList(const QList<EquipmentConditionStruct> &equipmentConditionList);

    QList<TimeConditionStruct> timeConditionList() const;
    void setTimeConditionList(const QList<TimeConditionStruct> &timeConditionList);

    quint64 id() const;
    void setId(const quint64 &id);

    QString name() const;
    void setName(const QString &name);

    quint16 icoId() const;
    void setIcoId(const quint16 &icoId);

    bool isSatisfy() const;
    void setIsSatisfy(bool isSatisfy);

    bool isHasSatisfy() const;
    void setIsHasSatisfy(bool isHasSatisfy);

private:
    bool m_isExecute;
    bool m_isSatisfy;
    bool m_isHasSatisfy;
    quint64 m_id;
    QString m_name;
    quint16 m_icoId;
    quint8 m_conditionSatisfyType;
    QList<ActionStruct> m_actionList;
    QList<EquipmentConditionStruct> m_equipmentConditionList;
    QList<TimeConditionStruct> m_timeConditionList;


};

#endif // AUTOMATICSTRUCT_H
